﻿#include "lineedit.h"

// 构造函数
LineEdit::LineEdit(QWidget *parent) : QLineEdit(parent), backgroundColor(Qt::white), cornerRadius(5), borderTransparent(true)
{
    // 设置默认样式
    setStyleSheet("QLineEdit { border: none; padding: 5px; }");
}

// 设置背景颜色
void LineEdit::setBackgroundColor(const QColor &color)
{
    backgroundColor = color;
    update(); // 触发重绘
}

// 设置圆角
void LineEdit::setCornerRadius(int radius)
{
    cornerRadius = radius;
    update(); // 触发重绘
}

// 设置边框透明
void LineEdit::setBorderTransparent(bool transparent)
{
    borderTransparent = transparent;
    update(); // 触发重绘
}

// 重写绘制事件
void LineEdit::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing, true);

    // 绘制背景
    QRect rect = this->rect();
    QPainterPath path;
    path.addRoundedRect(rect, cornerRadius, cornerRadius);

    // 设置背景颜色
    painter.fillPath(path, backgroundColor);

    // 绘制边框（如果不透明）
    if (!borderTransparent)
    {
        QPen pen(Qt::gray, 1);
        painter.setPen(pen);
        painter.drawPath(path);
    }

    // 调用父类的绘制逻辑，绘制文本
    QLineEdit::paintEvent(event);
}
